Further simplification
authorSergio Costas <rastersoft@gmail.com>
Tue, 16 Aug 2022 21:14:44 +0000 (23:14 +0200)
committerSergio Costas <rastersoft@gmail.com>
Tue, 16 Aug 2022 21:14:44 +0000 (23:14 +0200)
gtk/gtkpopover.c

index 4182c5fd58035cc5b4e9fdb8a29bd8b59d1667cd..45680d0b4b7b1e9547949f140900a84305ee6f8a 100644 (file)
@@ -456,7 +456,7 @@ window_focus_in (GtkWidget  *widget,
       if (focus == NULL || !gtk_widget_is_ancestor (focus, GTK_WIDGET (popover)))
         gtk_widget_grab_focus (GTK_WIDGET (popover));
 
-      if (priv->grab_notify_blocked)
+      if (priv->grab_notify_blocked && priv->widget)
         g_signal_handler_unblock (priv->widget, priv->grab_notify_id);
 
       priv->grab_notify_blocked = FALSE;
@@ -2097,7 +2097,6 @@ gtk_popover_update_relative_to (GtkPopover *popover,
 {
   GtkPopoverPrivate *priv = popover->priv;
   GtkStateFlags old_state = 0;
-  gboolean had_grab_notify_blocked = FALSE;
 
   if (priv->widget == relative_to)
     return;
@@ -2124,14 +2123,7 @@ gtk_popover_update_relative_to (GtkPopover *popover,
       if (g_signal_handler_is_connected (priv->widget, priv->state_changed_id))
         g_signal_handler_disconnect (priv->widget, priv->state_changed_id);
       if (g_signal_handler_is_connected (priv->widget, priv->grab_notify_id))
-        {
-          if (priv->grab_notify_blocked)
-            {
-              priv->grab_notify_blocked = FALSE;
-              had_grab_notify_blocked = TRUE;
-            }
-          g_signal_handler_disconnect (priv->widget, priv->grab_notify_id);
-        }
+        g_signal_handler_disconnect (priv->widget, priv->grab_notify_id);
 
       widget_unmanage_popover (priv->widget, popover);
     }
@@ -2167,11 +2159,8 @@ gtk_popover_update_relative_to (GtkPopover *popover,
         g_signal_connect (priv->widget, "grab-notify",
                           G_CALLBACK (_gtk_popover_parent_grab_notify),
                           popover);
-      if (had_grab_notify_blocked)
-        {
-          g_signal_handler_block (priv->widget, priv->grab_notify_id);
-          priv->grab_notify_blocked = TRUE;
-        }
+      if (priv->grab_notify_blocked)
+        g_signal_handler_block (priv->widget, priv->grab_notify_id);
 
       /* Give ownership of the popover to widget */
       widget_manage_popover (priv->widget, popover);